//
//  NSDictionary+JCSafetyGetter.h
//  JCPublicKit-Objc
//
//  Created by JasonLee on 2020/4/24.
//

#import <Foundation/Foundation.h>

@interface NSDictionary (JCSafetyGetter)

/**
 获取字符串，默认为nil
 如果key存在或key对应的value存在
 且value为NSString或NSNumber
 @param key 键值
 @return NSString
 @version 0.1.1
 */
- (NSString * _Nullable)jc_stringForKey:(NSString * _Nullable)key;
/**
 获取整型数值，默认为0
 如果key存在或key对应的value存在
 且value为int
 @param key 键值
 @return int
 @version 0.1.1
 */
- (int)jc_intForKey:(NSString * _Nullable)key;
/**
 获取整型数值，默认为0
 如果key存在或key对应的value存在
 且value为NSInteger
 @param key 键值
 @return NSInteger
 @version 0.1.1
 */
- (NSInteger)jc_integerForKey:(NSString * _Nullable)key;
/**
 获取长整型数值，默认为0
 如果key存在或key对应的value存在
 且value为long long
 @param key 键值
 @return long long
 @version 0.1.1
 */
- (long long)jc_longLongForKey:(NSString * _Nullable)key;
/**
 获取双精度浮点型数值，默认为0
 如果key存在或key对应的value存在
 且value为double
 @param key 键值
 @return double
 @version 0.1.1
 */
- (double)jc_doubleForKey:(NSString * _Nullable)key;
/**
 获取布尔值，默认为NO
 如果key存在或key对应的value存在
 且value为BOOL
 @param key 键值
 @return BOOL
 @version 0.1.1
 */
- (BOOL)jc_boolForKey:(NSString * _Nullable)key;
/**
 获取字典对象实例，默认为nil
 如果key存在或key对应的value存在
 且value为NSDictionary
 @param key 键值
 @return NSDictionary
 @version 0.1.1
 */
- (NSDictionary * _Nullable)jc_dictionaryForKey:(NSString * _Nullable)key;
/**
 获取数组对象实例，默认为nil
 如果key存在或key对应的value存在
 且value为NSArray
 @param key 键值
 @return NSArray
 @version 0.1.1
 */
- (NSArray * _Nullable)jc_arrayForKey:(NSString * _Nullable)key;

@end
